package com.ksm.calcul;

import java.util.ArrayList;
import java.util.List;

public class CalculIS {

	private List<BaremeEchelon> baremesIR = new ArrayList<BaremeEchelon>();
	private Integer parts = 1;
	private Double tauxAbattementFraisPro = 10.0;

	public CalculIS() {
		baremesIR.add(new BaremeEchelon(15.5, 0, 38120));
		baremesIR.add(new BaremeEchelon(33.3, 38120, 1000000));

	}

	public Double calcul(Double resultat) {

		Double impots = 0.0;
		if (resultat != null) {
			resultat = resultat * ((100 - tauxAbattementFraisPro) / 100);
			for (BaremeEchelon bareme : baremesIR) {
				if (resultat > bareme.getMontantMin()) {

					if (resultat > bareme.getMontantMax()) {
						impots = impots + ((bareme.getMontantMax() - bareme.getMontantMin()) * bareme.getTaux());
					} else {
						impots = impots + ((resultat - bareme.getMontantMin()) * bareme.getTaux());
					}
				}
			}

		}

		return impots;

	}
}
